home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / tss15.arc / TSSPROC.PRG < prev    next >
Encoding:
Text File  |  1986-06-25  |  15.5 KB  |  715 lines

  1. *****************************************************************************
  2. *
  3. * TSSPROC.PRG
  4. * Called by TSS.PRG
  5. * version 1.5   06/25/86
  6. * orign 01/85  A.J. Sieker
  7. * Procedure File for general input/housekeeping
  8. *
  9. * mod 07/85 for clipper
  10. * mod 09/85 for floppy usage
  11. * mod 03/15/86 brow funct, general improvements
  12. * mod 03/25/86 change archive to only backup TSSINPUT.DBF
  13. * mod 04/15/86 data input error trapping with bell and looping
  14. * mod 06/25/86 changed NDX macro usage within the FIELD() function 
  15. *              in INITDBF.
  16. *
  17. *****************************************************************************
  18. *****************************************************************************
  19. *
  20. PROCEDURE INPUT
  21.  
  22. CLEAR
  23. STORE .T. TO DEPT_FLAG,EMP_FLAG,CON_FLAG,CHG_FLAG,DATA 
  24. STORE 0 TO TOT_HOURS,ROW,COL,HOURS_IN
  25. STORE ' ' TO DEPT_IN,EMP_IN,CON_IN,EMP_KEY
  26. SELECT A
  27. DO WHILE DEPT_FLAG
  28.    DEPT_IN='      '
  29.    CLEAR
  30.    @ 1,0 SAY 'Time Sheet Data Entry'
  31.    @ 2,0 SAY 'Department   ' GET DEPT_IN PICTURE '999999'
  32.    READ
  33.    IF DEPT_IN=' '
  34.       DEPT_FLAG=.F.
  35.       LOOP
  36.    ELSE
  37.       SELECT D
  38.       SEEK DEPT_IN
  39.       IF EOF()
  40.          SET COLOR TO I
  41.          @ 2,40 SAY DEPT_IN+' NOT IN MASTER FILE'
  42.          SET COLOR TO
  43.          DO WAITKEY
  44.          LOOP
  45.       ELSE
  46.          @ 2,40 SAY NAME
  47.       ENDIF
  48.       SELECT A
  49.    ENDIF
  50.    EMP_FLAG=.T.
  51.    DO WHILE EMP_FLAG
  52.       EMP_IN='    '
  53.       @ 3,0 CLEAR
  54.       @ 3,0 SAY 'Employee No. ' GET EMP_IN PICTURE '9999'
  55.       READ
  56.       IF EMP_IN=' '
  57.          EMP_FLAG=.F.
  58.          LOOP
  59.       ELSE
  60.          SELECT B
  61.          SEEK EMP_IN
  62.          IF EOF()
  63.             SET COLOR TO I
  64.             @ 3,40 SAY EMP_IN+' NOT IN MASTER FILE'
  65.             SET COLOR TO
  66.             DO WAITKEY
  67.             LOOP
  68.          ELSE
  69.             @ 3,40 SAY SPACE(39)
  70.             @ 3,40 SAY TRIM(LAST_NAME)+', '+TRIM(FIRST_NAME)
  71.          ENDIF
  72.          SELECT A
  73.       ENDIF
  74.       CON_FLAG=.T.
  75.       ROW=8
  76.       COL=0
  77.       TOT_HOURS=0
  78.       DATA=.F.
  79.       DO WHILE CON_FLAG
  80.          CON_IN='              '
  81.          HOURS_IN=0.0
  82.          @ 5,0 SAY 'Contract     ' GET CON_IN
  83.          @ 6,0 SAY 'Hours        ' GET HOURS_IN PICTURE '999.9'
  84.          READ
  85.          DO CASE
  86.             CASE CON_IN=' '
  87.                  CON_FLAG=.F.
  88.                  LOOP
  89.             CASE CON_IN='R' .OR. CON_IN='r'
  90.                  IF .NOT. DATA
  91.                     LOOP
  92.                  ENDIF
  93.                  DO REDO
  94.                  LOOP
  95.             CASE CON_IN='D '
  96.                  CON_IN='\DIRECT'
  97.             CASE CON_IN='H '
  98.                  CON_IN='\HOLIDAY'
  99.             CASE CON_IN='I '
  100.                  CON_IN='\INDIRECT'
  101.             CASE CON_IN='O'
  102.                  CON_IN='\OVERHEAD'
  103.             CASE CON_IN='S '
  104.                  CON_IN='\SICK'
  105.             CASE CON_IN='V '
  106.                  CON_IN='\VACATION'
  107.          ENDCASE
  108.          APPEND BLANK
  109.          REPL DEPT WITH DEPT_IN
  110.          REPL EMPL_NO WITH EMP_IN
  111.          REPL CONTRACT WITH CON_IN
  112.          REPL HOURS WITH HOURS_IN 
  113.          @ ROW,COL SAY CON_IN
  114.          @ ROW,COL+20 SAY HOURS_IN PICTURE '999.9'
  115.          ROW=ROW+1
  116.          CHG_FLAG=.T.
  117.          IF ROW>20
  118.             ROW=1
  119.             COL=40
  120.          ENDIF
  121.          TOT_HOURS=TOT_HOURS+HOURS_IN
  122.          DATA=.T.
  123.       ENDDO
  124.       @ 21,0 SAY 'TOTAL HOURS'
  125.       @ 21,20 SAY TOT_HOURS PICTURE '999.9'
  126.       ACCEPT ' Edit Timesheet (Y/N) ' TO REPLY
  127.       REPLY=UPPER(REPLY)
  128.       IF REPLY='Y'
  129.          EMP_KEY=EMP_IN
  130.          DO EDITEMPL
  131.          CLEAR
  132.          @ 1,0 SAY 'Time Sheet Data Entry'
  133.          @ 2,0 SAY 'Department   '+DEPT_IN
  134.          SELECT D
  135.          SEEK DEPT_IN
  136.          @ 2,40 SAY NAME
  137.          SELECT A
  138.       ENDIF
  139.    ENDDO
  140. ENDDO
  141. IF CHG_FLAG
  142.    SELECT E
  143.    REPL VERIFY WITH .F.
  144. ENDIF
  145. SELECT A
  146.  
  147. RETURN
  148. *
  149. *****************************************************************************
  150. *****************************************************************************
  151. *
  152. PROCEDURE REDO
  153.  
  154. TOT_HOURS=TOT_HOURS-HOURS
  155. R_ROW=ROW-1
  156. R_COL=COL
  157. IF R_ROW<1
  158.    R_COL=40
  159.    R_ROW=20
  160. ELSE
  161.    R_COL=0
  162. ENDIF
  163. @ 5,0 SAY 'Contract (R) ' GET CONTRACT
  164. @ 6,0 SAY 'Hours    (R) ' GET HOURS
  165. READ
  166. TOT_HOURS=TOT_HOURS+HOURS
  167. @ R_ROW,R_COL SAY CONTRACT
  168. @ R_ROW,R_COL+20 SAY HOURS PICTURE '999.9'
  169.  
  170. RETURN
  171. *
  172. *****************************************************************************
  173. *****************************************************************************
  174. *
  175. PROCEDURE EDIT
  176.  
  177. SELECT A
  178. EMP_KEY=' '
  179. EDIT_LOOP=.T.
  180. CHG_FLAG=.F.
  181. DO WHILE EDIT_LOOP
  182.    CLEAR
  183.    EMP_KEY='    '
  184.    @ 1,0 SAY 'Edit Time Sheet'
  185.    @ 2,0 SAY 'Employee No. ' GET EMP_KEY
  186.    @ 10,0 SAY 'WARNING:  If entries are added to the file while in'
  187.    @ 11,0 SAY '          this edit mode, you must provide data for'
  188.    @ 12,0 SAY '          all of the fields, i.e. EMPL_NO, DEPT.'
  189.    @ 13,0 SAY '          Failure to provide the correct data in these'
  190.    @ 14,0 SAY '          fields will result in the entry being lost.'
  191.    READ
  192.    IF EMP_KEY=' '
  193.       EDIT_LOOP=.F.
  194.       LOOP
  195.    ENDIF
  196.    DO EDITEMPL
  197. ENDDO
  198. IF CHG_FLAG
  199.    SELECT E
  200.    REPL VERIFY WITH .F.
  201. ENDIF
  202. SELECT A
  203.  
  204. RETURN
  205. *
  206. *****************************************************************************
  207. *****************************************************************************
  208. *
  209. PROCEDURE EDITEMPL
  210.  
  211. SEEK EMP_KEY
  212. IF EOF()
  213.    @ 18,0 SAY 'Employee not found'
  214.    WAIT
  215. ELSE
  216.    CHG_FLAG=.T.
  217.    START=RECNO()
  218.    IF CLIPPER
  219.       DO BROW WITH 'EMPL_NO','DEPT','CONTRACT','HOURS'
  220.    ELSE
  221.       BROWSE FIELDS EMPL_NO,DEPT,CONTRACT,HOURS
  222.    ENDIF
  223.    GOTO START
  224.    SUM HOURS TO TOT_HOURS WHILE EMPL_NO=EMP_KEY
  225.    CLEAR
  226.    ? 'Employee '+EMP_KEY+' Total = '
  227.    ?? TOT_HOURS
  228.    ?
  229.    WAIT
  230. ENDIF
  231.  
  232. RETURN 
  233. *
  234. *****************************************************************************
  235. *****************************************************************************
  236. *
  237. PROCEDURE VERIFY
  238.  
  239. CLEAR
  240. TEXT
  241. Verify program selected.
  242.  
  243. This verify program will compare the current time sheet input data
  244. to the master files and print out an error report that lists those
  245. entries that are bad and a message indicating which fields are at
  246. fault.
  247.  
  248. The time sheet input data should be verified before any payroll reports
  249. are printed. The Master Files can be updated, if necessary, and the
  250. verify performed again.
  251.  
  252. 8-1/2 x 11 inch paper can be used.
  253.  
  254. Check printer for paper alignment.
  255.  
  256. ENDTEXT
  257. ACCEPT 'Continue with verify (Y/N) ' TO REPLY
  258. REPLY=UPPER(REPLY)
  259. IF REPLY#'Y'
  260.    RETURN
  261. ELSE
  262.    ? 'Verifing......'
  263. ENDIF
  264. SELECT B
  265. SET INDEX TO &TSSENMBR
  266. SELECT A
  267. ROW=99
  268. ERR=0
  269. SET DEVICE TO PRINT
  270. DO WHILE .NOT. EOF()
  271.    EMPL_KEY=EMPL_NO
  272.    CON_KEY=SUBSTR(CONTRACT,1,7)
  273.    DEPT_KEY=DEPT
  274.    SELE B
  275.    SEEK EMPL_KEY
  276.    IF EOF()
  277.       EMPL_FLAG=.T.
  278.    ELSE
  279.       EMPL_FLAG=.F.
  280.    ENDIF
  281.    SELE C
  282.    SEEK CON_KEY
  283.    IF EOF()
  284.       CON_FLAG=.T.
  285.    ELSE
  286.       CON_FLAG=.F.
  287.    ENDIF
  288.    SELE D
  289.    SEEK DEPT_KEY
  290.    IF EOF()
  291.       DEPT_FLAG=.T.
  292.    ELSE
  293.       DEPT_FLAG=.F.
  294.    ENDIF
  295.    SELE A
  296.    IF EMPL_FLAG .OR. CON_FLAG .OR. DEPT_FLAG 
  297.       ERR=ERR+1
  298.       IF ROW>60
  299.          @ 0,0
  300.          @ 1,0 SAY DTOC(DATE())
  301.          @ 1,22 SAY 'TIME SHEET DATA VERIFY ERROR REPORT'
  302.          @ 3,0 SAY 'NMBR'
  303.          @ 3,6 SAY 'DEPT.'
  304.          @ 3,15 SAY 'CONTRACT'
  305.          @ 3,30 SAY 'REC'
  306.          @ 3,40 SAY 'ERROR FIELD/DATA'
  307.          ROW=5
  308.       ENDIF
  309.       @ ROW,0 SAY EMPL_NO
  310.       @ ROW,6 SAY DEPT
  311.       @ ROW,15 SAY CONTRACT
  312.       @ ROW,30 SAY RECNO() PICT '9999'
  313.       IF EMPL_FLAG
  314.          @ ROW,40 SAY 'EMPL NO'
  315.       ENDIF
  316.       IF CON_FLAG
  317.          @ ROW,50 SAY 'CONTRACT'
  318.       ENDIF
  319.       IF DEPT_FLAG
  320.          @ ROW,60 SAY 'DEPT'
  321.       ENDIF
  322.       ROW=ROW+1
  323.    ENDIF
  324.    SKIP
  325. ENDDO
  326. SET DEVICE TO SCREEN
  327. CLEAR
  328. SELECT E
  329. IF ERR=0
  330.    ? 'No errors were found on any of the entries.'
  331.    ? 'Nice going, Bernice !!!'
  332.    REPL VERIFY WITH .T.
  333. ELSE
  334.    ? 'There are '+STR(ERR,3)+' entries that have errors.'
  335.    ? 'Calm down, Bernice !!!'
  336.    EJECT
  337.    REPL VERIFY WITH .F.
  338. ENDIF
  339. SELECT B
  340. SET INDEX TO &TSSENAME
  341. GOTO TOP
  342. ?
  343. WAIT
  344. SELECT A  
  345.  
  346. RETURN
  347. *
  348. *****************************************************************************
  349. *****************************************************************************
  350. *
  351. PROCEDURE ARCHIVE
  352.  
  353. CLEAR
  354. TEXT
  355. Time Sheet Archive Routine has been selected.
  356.  
  357. The current time sheet data will be transferred to a backup file and
  358. then the current time sheet data will be CLEARED OUT in preparation
  359. for the next pay period.
  360.  
  361. ENDTEXT
  362. ACCEPT 'Continue with program (Y/N) ' TO REPLY
  363. REPLY=UPPER(REPLY)
  364. IF REPLY#'Y'
  365.    SELECT A
  366.    RETURN
  367. ELSE
  368.    ?
  369.    ? 'Archiving.......'
  370. ENDIF
  371.  
  372. * files need to be closed before the COPY FILE command will work
  373. *
  374. CLOSE DATA
  375. CLOSE INDEX
  376. COPY FILE &TSSINPUT..DBF TO &TSSINPUT..DBK
  377.  
  378. * clear out input file
  379. *
  380. USE &TSSINPUT
  381. ZAP
  382. INDEX ON EMPL_NO TO &TSSINPUT
  383.  
  384. * update status file
  385. *
  386. USE &TSSSTAT
  387. REPLACE VERIFY WITH .F.
  388. USE
  389.  
  390. * re-open the system files
  391. *
  392. DO INITDBF
  393.  
  394. RETURN
  395. *
  396. *****************************************************************************
  397. *****************************************************************************
  398. *
  399. PROCEDURE STATUS
  400.  
  401. CLEAR
  402. SELECT E
  403. TEXT
  404. Time Sheet System Status :
  405.  
  406. Last Payroll Report      :
  407. Last End of Month        :
  408.  
  409. ENDTEXT
  410. @ 3,26 SAY PAY_REPT
  411. @ 4,26 SAY EOM_PROC
  412. @ 10,0
  413. SELECT A
  414. WAIT
  415.  
  416. RETURN
  417. *
  418. *****************************************************************************
  419. *****************************************************************************
  420. *
  421. PROCEDURE REGEN
  422.  
  423. CLEAR
  424. TEXT
  425. Regenerate File Indexes. 
  426.  
  427. This routine will remove all deleted entries that may be 
  428. invisible, but are still taking up space on the diskette.
  429.  
  430. The index files are regenerated to improve access speed. 
  431.  
  432. This routine should be performed whenever the system seems
  433. to have slowed down, or when the free space on the diskette
  434. is getting low. 
  435.  
  436. ENDTEXT
  437. ACCEPT 'Continue with regeneration (Y/N) ' TO REPLY
  438. REPLY=UPPER(REPLY)
  439. IF REPLY#'Y'
  440.    RETURN
  441. ELSE 
  442.    ? 'Regenerating.....'
  443. ENDIF
  444.  
  445. ? 'Input'
  446. SELECT A
  447. PACK
  448. INDEX ON EMPL_NO TO &TSSINPUT
  449. GOTO TOP
  450.  
  451. ? 'Employee'
  452. SELECT B
  453. PACK
  454. INDEX ON LAST_NAME TO &TSSENAME
  455. INDEX ON EMPL_NO TO &TSSENMBR
  456. GOTO TOP
  457.  
  458. ? 'Contract'
  459. SELECT C
  460. PACK
  461. INDEX ON CONTRACT TO &TSSCONTR
  462. GOTO TOP
  463.  
  464. ? 'Department'
  465. SELECT D
  466. PACK
  467. INDEX ON DEPT TO &TSSDEPT
  468. GOTO TOP
  469.  
  470. ? 'Report Control file'
  471. SELECT F
  472. PACK
  473. INDEX ON CONTRACT TO &TSSRCTRL
  474. GOTO TOP
  475. SELECT A
  476.  
  477. RETURN
  478. *
  479. *****************************************************************************
  480. *****************************************************************************
  481. *
  482. PROCEDURE MAINT
  483.  
  484. CLEAR
  485. TEXT
  486. Time sheet input data maintenance program.
  487.  
  488. To be used to clean-up the input data when special needs are required,
  489. for example, deletion of records with blank employee numbers.
  490.  
  491. The data is presented by employee number order.
  492.  
  493. You may add records, however, you must provide data in all fields.
  494.  
  495. ENDTEXT
  496. ACCEPT 'Continue with program (Y/N) ' TO REPLY
  497. REPLY=UPPER(REPLY)
  498. IF REPLY#'Y'
  499.    RETURN
  500. ENDIF
  501. SELECT A
  502. GOTO TOP
  503. IF EOF()
  504.    ? 'Input data file is empty...'
  505.    WAIT
  506. ELSE
  507.    IF CLIPPER
  508.       DO BROW WITH 'EMPL_NO','DEPT','CONTRACT','HOURS'
  509.    ELSE
  510.       BROWSE FIELDS EMPL_NO,DEPT,CONTRACT,HOURS
  511.    ENDIF
  512. ENDIF
  513.  
  514. RETURN
  515. *
  516. *****************************************************************************
  517. *****************************************************************************
  518. *
  519. PROCEDURE REPTLIST
  520.  
  521. SELECT F
  522. GOTO TOP
  523. IF CLIPPER
  524.    DO BROW WITH 'CONTRACT',' ',' ',' '
  525. ELSE
  526.    BROWSE FIELDS CONTRACT
  527. ENDIF
  528. COUNT ALL TO TEMP
  529. CLEAR
  530. MAX=INT(((P_WIDTH - 24)/7))
  531. IF TEMP>MAX
  532.    TEXT
  533.    WARNING :
  534.  
  535.    There are too many contracts in the list.
  536.        
  537.    You should go back and delete the un-wanted contracts
  538.    from the list before this gets out of hand.
  539.  
  540.    YOU HAVE BEEN WARNED !!!
  541.  
  542.    ENDTEXT
  543.    ? 'A maximum of '
  544.    ?? MAX
  545.    ?? ' contract is allowed.'
  546. ELSE
  547.    ? 'There are '+STR(TEMP,2)+' contracts on the list.'
  548.    ?
  549.    ? 'You have a maximum of '
  550.    ?? MAX
  551.    ?? ' contracts.'
  552.    ?
  553. ENDIF
  554. WAIT
  555. SELECT A
  556.  
  557. RETURN
  558. *
  559. *****************************************************************************
  560. *****************************************************************************
  561. *
  562. * Initialize and verify required files and indexes
  563. * Index files are generated if not found.
  564. *
  565. PROCEDURE INITDBF
  566.  
  567. ERROR=.F.
  568. ERR_LIST=' '
  569. SELECT A
  570. IF FILE('&TSSINPUT..DBF')
  571.    IF .NOT. FILE('&TSSINPUT.&NDX')
  572.       USE &TSSINPUT
  573.       ? 'Generating TSSINPUT index file.'
  574.       SET TALK ON
  575.       INDEX ON EMPL_NO TO &TSSINPUT
  576.       SET TALK OFF
  577.    ENDIF
  578.    USE &TSSINPUT INDEX &TSSINPUT
  579. ELSE
  580.    ERROR=.T.
  581.    ERR_LIST=ERR_LIST+'&TSSINPUT '
  582. ENDIF
  583.  
  584. SELECT B
  585. IF FILE('&TSSEMPL..DBF')
  586.    IF .NOT. FILE('&TSSENAME.&NDX')
  587.       USE &TSSEMPL
  588.       ? 'Generating TSSENAME index file.'
  589.       SET TALK ON
  590.       INDEX ON LAST_NAME TO &TSSENAME
  591.       SET TALK OFF
  592.    ENDIF
  593.    IF .NOT. FILE('&TSSENMBR.&NDX')
  594.       USE &TSSEMPL
  595.       ? 'Generating TSSENMBR index file.'
  596.       SET TALK ON
  597.       INDEX ON EMPL_NO TO &TSSENMBR
  598.       SET TALK OFF
  599.    ENDIF
  600.    USE &TSSEMPL INDEX &TSSENMBR
  601. ELSE
  602.    ERROR=.T.
  603.    ERR_LIST=ERR_LIST+'&TSSEMPL '
  604. ENDIF
  605.  
  606. SELECT C
  607. IF FILE('&TSSCONTR..DBF')
  608.    IF .NOT. FILE('&TSSCONTR.&NDX')
  609.       USE &TSSCONTR
  610.       ? 'Generating TSSCONTR index file.'
  611.       SET TALK ON
  612.       INDEX ON CONTRACT TO &TSSCONTR
  613.       SET TALK OFF
  614.    ENDIF
  615.    USE &TSSCONTR INDEX &TSSCONTR
  616. ELSE
  617.    ERROR=.T.
  618.    ERR_LIST=ERR_LIST+'&TSSCONTR '
  619. ENDIF
  620.  
  621. SELECT D
  622. IF FILE('&TSSDEPT..DBF')
  623.    IF .NOT. FILE('&TSSDEPT.&NDX')
  624.       USE &TSSDEPT 
  625.       ? 'Generating TSSDEPT index file.'
  626.       SET TALK ON
  627.       INDEX ON DEPT TO &TSSDEPT 
  628.       SET TALK OFF
  629.    ENDIF
  630.    USE &TSSDEPT INDEX &TSSDEPT
  631. ELSE
  632.    ERROR=.T.
  633.    ERR_LIST=ERR_LIST+'&TSSDEPT '
  634. ENDIF
  635.  
  636. SELECT E
  637. IF FILE('&TSSSTAT..DBF')
  638.    USE &TSSSTAT
  639. ELSE
  640.    ERROR=.T.
  641.    ERR_LIST=ERR_LIST+'&TSSSTAT '
  642. ENDIF
  643.  
  644. SELECT F
  645. IF FILE('&TSSRCTRL..DBF')
  646.    IF .NOT. FILE('&TSSRCTRL.&NDX')
  647.       USE &TSSRCTRL
  648.       ? 'Generating TSSRCTRL index file.'
  649.       SET TALK ON
  650.       INDEX ON CONTRACT TO &TSSRCTRL
  651.       SET TALK OFF
  652.    ENDIF
  653.    USE &TSSRCTRL INDEX &TSSRCTRL
  654. ELSE
  655.    ERROR=.T.
  656.    ERR_LIST=ERR_LIST+'&TSSRCTRL '
  657. ENDIF
  658.  
  659. IF ERROR
  660.    CLEAR
  661.    TEXT
  662.    The Time Sheet System database file requirements were not met.
  663.    All of the files in the list below were either deleted from the
  664.    disk or not transferred along with the other files.
  665.  
  666.    The following database files could not be verified:
  667.  
  668.    ENDTEXT
  669.    ? ERR_LIST
  670.    WAIT
  671. ENDIF
  672. SELECT A
  673.  
  674. RETURN
  675. *
  676. *****************************************************************************
  677. *****************************************************************************
  678. *
  679. * sound bell, flash message, wait for key to be pressed
  680. *
  681. PROCEDURE WAITKEY
  682.  
  683. IF CLIPPER
  684.    CM=30
  685. ELSE
  686.    CM=6
  687. ENDIF
  688. ?? BELL
  689. MSG=' PRESS <ENTER> TO CONTINUE '
  690. KP=INKEY()  && FLUSH KEY BUFFER
  691. KP=0
  692. C=0
  693. DO WHILE KP=0
  694.    IF C>CM/2
  695.       SET COLOR TO I
  696.    ENDIF
  697.    @ 1,40 SAY MSG
  698.    SET COLOR TO
  699.    KP=INKEY()
  700.    C=C+1
  701.    IF C>CM
  702.       C=0
  703.    ENDIF
  704. ENDDO
  705. @ 1,40 SAY SPACE(LEN(MSG))
  706.  
  707. RETURN
  708. *
  709. *****************************************************************************
  710. *****************************************************************************
  711. *
  712. * END OF PROCEDURE FILE - TSSPROC.PRG
  713. *
  714. *****************************************************************************
  715.